home *** CD-ROM | disk | FTP | other *** search
- MODULE M2demo;
-
- IMPORT SYSTEM;
- IMPORT AESResources;
- FROM SYSTEM IMPORT ADR,ADDRESS;
- FROM GEMAESbase IMPORT Object,TEdInfo,FormStart,FormFinish,RTree,Arrow;
- FROM AESApplications IMPORT ApplInitialise,ApplExit;
- FROM AESForms IMPORT FormDialogue,FormDo,FormCenter;
- FROM AESObjects IMPORT ObjectDraw;
- FROM AESGraphics IMPORT GrafMouse;
-
- FROM Strings IMPORT Assign;
- CONST
- DEMO = 0 ;
- DATA = 3 ;
- INOK = 4 ;
- OUTDATA = 1 ;
- RESULT = 1 ;
- OUTOK = 2 ;
- MODULE resource;
-
- (*
- Produced by ResourceMaker 0.10a
- Copyright (c) 1985, 1986 Modula 2 Software Ltd.
- Copyright (c) 1985, 1986 TDI Software Inc.
-
- Resource file version: 00000H
- *)
-
-
- FROM SYSTEM IMPORT CODE, ADDRESS;
-
- FROM AESResources IMPORT ResourceObjectFix;
- EXPORT TreeAddr;
- CONST
- (* object types that don't have to be relocated *)
- GBOX = 20;
- GPROGDEF = 24;
- GIBOX = 25;
- GBOXCHAR = 27;
-
- CONST
- (* resource file object counts and indicies *)
- nrObjects = 8; ixObjects = 226;
- nrTrees = 2; ixTrees = 418;
- nrTedInfos = 2; ixTedInfos = 170;
-
- (* resource file data inserted into CODE stream *)
-
- (*$S-,$P-,$T-*)
- PROCEDURE RESOURCEDATA0;
- BEGIN
- CODE(00000H,000E2H,000AAH,000AAH,000AAH,000AAH,00024H,000AAH);
- CODE(000AAH,001A2H,00008H,00002H,00002H,00000H,00000H,00000H);
- CODE(00000H,001AAH,05468H,06973H,02069H,07320H,06120H,07361H);
- CODE(06D70H,06C65H,02064H,0656DH,06F20H,06F66H,02064H,06961H);
- CODE(06C6FH,06700H,07265H,06164H,0696EH,06700H,05F5FH,05F5FH);
- CODE(05F5FH,05F5FH,05F5FH,0004EH,0616DH,0653AH,05F5FH,05F5FH);
- CODE(05F5FH,05F5FH,05F5FH,00058H,05858H,05858H,05858H,05858H);
- CODE(05800H,0676FH,0206FH,06E21H,0005FH,05F5FH,05F5FH,05F5FH);
- CODE(05F5FH,05F00H,0596FH,07520H,07479H,07065H,0643AH,05F5FH);
- CODE(05F5FH,05F5FH,05F5FH,05F5FH,00058H,05858H,05858H,05858H);
- CODE(05858H,05800H,0446FH,06E65H,02100H,00000H,0004CH,00000H);
- CODE(00057H,00000H,00067H,00003H,00006H,00000H,01180H,00000H);
- CODE(000FFH,0000BH,00010H,00000H,00079H,00000H,00084H,00000H);
- CODE(00099H,00003H,00006H,00000H,01180H,00000H,000FFH,0000BH);
- CODE(00015H,0FFFFH,00001H,00004H,00014H,00000H,00010H,00002H);
- CODE(01100H,00000H,00000H,00026H,0000BH,00002H,0FFFFH,0FFFFH);
- CODE(0001CH,00000H,00000H,00000H,00024H,00004H,00002H,0001FH);
- CODE(00001H,00003H,0FFFFH,0FFFFH,0001CH,00000H,00000H,00000H);
- CODE(00044H,0000FH,00004H,00009H,00001H,00004H,0FFFFH,0FFFFH);
- CODE(0001DH,00008H,00000H,00000H,000AAH,0000BH,00006H,0000FH);
- CODE(00001H,00000H,0FFFFH,0FFFFH,0001AH,00025H,00000H,00000H);
- CODE(00072H,0000EH,00008H,00008H,00001H,0FFFFH,00001H,00002H);
- CODE(00014H,00000H,00010H,00002H,01100H,00000H,00000H,0001CH);
- CODE(00009H,00002H,0FFFFH,0FFFFH,0001DH,00008H,00000H,00000H);
- CODE(000C6H,00003H,00002H,00014H,00001H,00000H,0FFFFH,0FFFFH);
- CODE(0001AH,00025H,00000H,00000H,000A4H,00008H,00005H,00008H);
- CODE(00001H,00000H,000E2H,00000H,0015AH);
- END RESOURCEDATA0;
-
-
- TYPE
- OBJECT = RECORD
- next, head: INTEGER;
- tail, type: INTEGER;
- flags, state: INTEGER;
- spec: ADDRESS;
- x, y: INTEGER;
- width, height: INTEGER;
- END;
- TEDINFO = RECORD
- ptext,
- ptmplt,
- pvalid: ADDRESS;
- font, resvd1: INTEGER;
- just, color: INTEGER;
- resvd2, thickness: INTEGER;
- txtlen, tmplen: INTEGER;
- END;
- VAR
- i: CARDINAL; o: INTEGER; x: ADDRESS;
- TreeAddr: POINTER TO ARRAY [0..nrTrees-1] OF ADDRESS;
- TedInfoAddr: POINTER TO ARRAY [0..nrTedInfos-1] OF TEDINFO;
- ObjectAddr: POINTER TO ARRAY [0..nrObjects-1] OF OBJECT;
-
- BEGIN
- (* relocate tree indicies *)
- x := ADDRESS(RESOURCEDATA0) + ixTrees;
- TreeAddr := x;
- FOR i := 0 TO nrTrees-1 DO
- TreeAddr^[i] := TreeAddr^[i] + ADDRESS(RESOURCEDATA0); INC(x,4);
- END;
- (* relocate ted infos *)
- x := ADDRESS(RESOURCEDATA0) + ixTedInfos;
- TedInfoAddr := x;
- FOR i := 0 TO nrTedInfos-1 DO
- WITH TedInfoAddr^[i] DO
- ptext := ptext + ADDRESS(RESOURCEDATA0);
- ptmplt := ptmplt + ADDRESS(RESOURCEDATA0);
- pvalid := pvalid + ADDRESS(RESOURCEDATA0);
- END;
- END;
- (* relocate object specs *)
- x := ADDRESS(RESOURCEDATA0) + ixObjects;
- ObjectAddr := x;
- FOR i := 0 TO nrObjects-1 DO
- WITH ObjectAddr^[i] DO
- IF (type # GBOX) & (type # GPROGDEF) &
- (type # GIBOX) & (type # GBOXCHAR) THEN
- (* relocate against resource base *)
- spec := spec + ADDRESS(RESOURCEDATA0);
- END;
- (* Fix up the scaling *)
- ResourceObjectFix(ObjectAddr,i) ; (*0.10a*)
- END;
- END;
- END resource;
-
- TYPE
- OP=POINTER TO ARRAY [0..100] OF Object;
- TP=POINTER TO TEdInfo;
- CP=POINTER TO ARRAY [0..100] OF CHAR;
- VAR
- JUNK:INTEGER;
- str:ARRAY [0..100] OF CHAR;
- sp:CP;
- data,outtree:OP;
- x,y,w,h:INTEGER;
-
- PROCEDURE ResourceLoad(a:ARRAY OF CHAR);
- BEGIN
- END ResourceLoad;
-
- PROCEDURE ResourceGetAddr(a,b:INTEGER;VAR c:ADDRESS);
- BEGIN
- c:=TreeAddr^[b];
- END ResourceGetAddr;
-
- PROCEDURE gettext(TREE:OP;index:INTEGER;VAR ans:CP);
- VAR
- ted:TP;
- ob:Object;
- CH:CP;
-
- BEGIN
- ob:=TREE^[index];
- ted:=ob.spec;
- CH:=ted^.ptext;
- Assign(ans^,CH^);
- END gettext;
-
- PROCEDURE puttext(tree:OP;index:INTEGER;str:CP);
- VAR
- ted:TP;
- CH:CP;
- BEGIN
- ted:=tree^[index].spec;
- CH:=ted^.ptext;
- Assign(CH^,str^)
- END puttext;
-
- BEGIN
- JUNK:=ApplInitialise();
- ResourceLoad("B:\M2DEMO.RSC");
- ResourceGetAddr(RTree,DEMO,data);
- GrafMouse(Arrow,0);
- ResourceGetAddr(RTree,OUTDATA,outtree);
- FormCenter(data,x,y,w,h);
- FormDialogue(FormStart,0,0,0,0,x,y,w,h);
- ObjectDraw(data,0,4,x,y,w,h);
- JUNK:=FormDo(data,DATA);
- sp:=ADR(str);
- gettext(data,DATA,sp);
- FormDialogue(FormFinish,0,0,0,0,x,y,w,h);
- FormCenter(outtree,x,y,w,h);
- FormDialogue(FormStart,0,0,0,0,x,y,w,h);
- puttext(outtree,OUTDATA,sp);
- ObjectDraw(outtree,0,4,x,y,w,h);
- JUNK:=FormDo(outtree,0);
- FormDialogue(FormFinish,0,0,0,0,x,y,w,h);
- ApplExit;
- END M2demo.
-